﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;

namespace ConsoleApp1.DbCustom.Models
{
    [Index(nameof(CodeType), nameof(Code), Name = "AK_KEY_2_Sys_Dictionary", IsUnique = true)]
    [Index(nameof(CodeType), Name = "Index_CodeType")]
    public partial class Sys_Dictionary
    {
        [Key]
        [StringLength(36)]
        [Unicode(false)]
        public string Id { get; set; } = null!;
        /// <summary>
        /// 1 普通
        ///    2 附件
        /// </summary>
        public int Category { get; set; }
        /// <summary>
        /// 1 字典类别：Code、Name分别对应类别编码及名称【预定义好】；预定义好的对应如下；
        ///    2 多语言
        ///    3 注册类型(供应商属性)
        ///    4 国家/地区
        ///    5 通信语言
        ///    6 管理人员职务(SPOC-职位)
        ///    7 国际地址版本
        ///    8 业务类型(暂仅BPM创建邀请链接用到)【暂不维护 - 仅预留】
        ///    9 账户组(暂仅BPM创建邀请链接用到)【暂不维护 - 仅预留】
        ///    10 TPV合规审查状态
        ///    11 操作手册
        ///    12 品类选择指引
        ///    13 ABI所在国家（包括问卷、国家地址版本的国家等）
        ///    14 开户行默认申请人
        ///    15 企业所有制
        ///    16 代理收款人类型
        ///    17 供应商校验基本信息Code
        ///    18 供应商类型
        ///    19 设施（分公司）类型
        ///    20 企业信息验证的有效天数
        ///    21公邮
        ///    
        ///    
        ///    
        ///    
        ///    
        /// </summary>
        [StringLength(50)]
        public string CodeType { get; set; } = null!;
        [StringLength(200)]
        public string Name { get; set; } = null!;
        [StringLength(50)]
        public string Code { get; set; } = null!;
        [StringLength(500)]
        public string? Value { get; set; }
        public int Sort { get; set; }
        [StringLength(200)]
        public string? Remark { get; set; }
        public bool IsActive { get; set; }
        public bool? IsShow { get; set; }
        [StringLength(36)]
        [Unicode(false)]
        public string? CreatedBy { get; set; }
        [Column(TypeName = "datetime")]
        public DateTime? CreatedTime { get; set; }
        [StringLength(36)]
        [Unicode(false)]
        public string? LastModifiedBy { get; set; }
        [Column(TypeName = "datetime")]
        public DateTime? LastModifiedTime { get; set; }
    }
}
